המתודה REQUEST
12 תשובות
באופן כללי למה לכתוב
או
$_GET['name'];
כשאפשר תמיד לכתוב
לפי דעתי זה בגלל שזה פחות מאובטח
כי לדוגמה אתה עושה טופס כזה:
if(isset($_REQUEST['hide'])){
//$_REQUEST['hide'] its POST
}
?>
עכשיו מישהו יכול לשים לך משהו ב GET.
ובעצם לעקוב את הטופס.(לא שאי אפשר לשנות לפני השליחה אבל עדיין).
וגם ניראלי שהוא יותר איטי כי הוא צריך לחפש את המשתנה הזה גם בשני המקומות..
מהסיבה ש request לוקח את הנתונים משלושה מקורות שונים ורושם אחד מעל השני.
אם הסקריפט שלך מצפה לקחת איזה נתון מתוך טופס, מישהו יכול במקום זה לדחוף לך משהו לא מועיל לשורת הכתובת או לקוקיז. אם הסקריפט שלך לא יצפה לזה - אתה בבעיה.
כנ"ל גם ההיפך. אם הסקריפט שלך מסתמך על משהו בקוקיז ובמקום זה הוא מקבל את זה סתם מתוך טופס, בכוונה או בטעות - אתה שוב בבעייה. לדוגמה אם אתה שומר את האימייל של המשתמש בקוקי וגם יש לך טופס באתר עם שדה אימייל - תתחיל לך בלבלת נתונים.
שמע חייבים להיות מיקרים להשתמש בהם כי עם לא בישביל מה המציאו אותם?
אבל עם זה טופס פשוט או התחברות עדיף שלא.
בכל שנותיי כמתכנת PHP לא מצאתי סיבה להשתמש ב $_REQUEST. אני חושב שאם המערכת מצפה לקבל מידע משני מקורות (GET או POST, בד"כ אין מקרים שקוקיז נכנס לתמונה בכלל) אז צריך לבדוק לפי סדר עדיפות מאיפה הגיע המידע ואז להשתמש בו, על שדה ספציפי.
לאחרונה נתקלתי במערכת נוראית שמשתמש ב _REQUEST בכל הקלט שלה. זה פשוט אסון.
בניה